package day04;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 要求用户输入若干员工信息，格式为：
 * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
 * 例如:
 * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
 * 然后将每个员工信息解析成Emp对象。并存入到一个集合中。
 * 然后循环集合，输出每一个员工信息(输出使用toString返回的字符串)
 * 然后输出每个员工的转正仪式日期。
 * 转正仪式日期为:入职3个月的当周周五
 * 
 * @author Bonnie
 *
 */
public class Test09 {
    public static void main(String[] args) {
        System.out.println("请依次输入员工信息(同一行，格式为：姓名，年龄，性别，薪资，入职时间；姓名，年龄...)");
        Scanner scanner = new Scanner(System.in);
        String total = scanner.nextLine();
        String[] strings = total.split(";");
        // * 然后将每个员工信息解析成Emp对象。并存入到一个集合中。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Collection<Emp> empsList = new ArrayList<>();
        for (String s : strings){
            String[] one = s.split(",");
            try {
                Emp emp = new Emp(one[0], Integer.parseInt(one[1]), one[2], Integer.parseInt(one[3]), sdf.parse(one[4]));
                empsList.add(emp);
            } catch (ParseException e) {
                System.out.println("有日期输入格式错误!");
            }
        }
        // * 然后循环集合，输出每一个员工信息(输出使用toString返回的字符串)
        System.out.println("各位员工信息如下：");
        for (Emp e : empsList){
            System.out.print(e + "; ");
        }
        // * 然后输出每个员工的转正仪式日期。
        // * 转正仪式日期为:入职3个月的当周周五
        System.out.println();
        System.out.println("各员工转正仪式时间为：");
        for (Emp e : empsList){
            Calendar cal = Calendar.getInstance();
            cal.setTime(e.getHiredate());
            cal.add(Calendar.MONTH, 3);
            cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
            System.out.print(sdf.format(cal.getTime()) + "; ");
        }
    }

}
